Don' generate enter or leave events if the pointer is grabbed with
authorTor Lillqvist <tml@iki.fi>
Wed, 28 Jan 2004 02:10:07 +0000 (02:10 +0000)
committerTor Lillqvist <tml@src.gnome.org>
Wed, 28 Jan 2004 02:10:07 +0000 (02:10 +0000)
2004-01-28  Tor Lillqvist  <tml@iki.fi>

* gdk/win32/gdkevents-win32.c (synthesize_leave_event,
synthesize_enter_event): Don' generate enter or leave events if
the pointer is grabbed with owner_events off, and the grab event
mask doesn't ask for them. (#129242)

(gdk_event_translate): Ditto for focus change events.

ChangeLog
ChangeLog.pre-2-10
ChangeLog.pre-2-4
ChangeLog.pre-2-6
ChangeLog.pre-2-8
gdk/win32/gdkevents-win32.c

index 2c6502802e30ef8381f181cea97a14d0accbedad..9906b1ee96844c5ccc487633df835c4dc9b1505f 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,12 @@
+2004-01-28  Tor Lillqvist  <tml@iki.fi>
+
+       * gdk/win32/gdkevents-win32.c (synthesize_leave_event,
+       synthesize_enter_event): Don' generate enter or leave events if
+       the pointer is grabbed with owner_events off, and the grab event
+       mask doesn't ask for them. (#129242)
+
+       (gdk_event_translate): Ditto for focus change events.
+
 2004-01-27  Federico Mena Quintero  <federico@ximian.com>
 
        Fix #132314.
index 2c6502802e30ef8381f181cea97a14d0accbedad..9906b1ee96844c5ccc487633df835c4dc9b1505f 100644 (file)
@@ -1,3 +1,12 @@
+2004-01-28  Tor Lillqvist  <tml@iki.fi>
+
+       * gdk/win32/gdkevents-win32.c (synthesize_leave_event,
+       synthesize_enter_event): Don' generate enter or leave events if
+       the pointer is grabbed with owner_events off, and the grab event
+       mask doesn't ask for them. (#129242)
+
+       (gdk_event_translate): Ditto for focus change events.
+
 2004-01-27  Federico Mena Quintero  <federico@ximian.com>
 
        Fix #132314.
index 2c6502802e30ef8381f181cea97a14d0accbedad..9906b1ee96844c5ccc487633df835c4dc9b1505f 100644 (file)
@@ -1,3 +1,12 @@
+2004-01-28  Tor Lillqvist  <tml@iki.fi>
+
+       * gdk/win32/gdkevents-win32.c (synthesize_leave_event,
+       synthesize_enter_event): Don' generate enter or leave events if
+       the pointer is grabbed with owner_events off, and the grab event
+       mask doesn't ask for them. (#129242)
+
+       (gdk_event_translate): Ditto for focus change events.
+
 2004-01-27  Federico Mena Quintero  <federico@ximian.com>
 
        Fix #132314.
index 2c6502802e30ef8381f181cea97a14d0accbedad..9906b1ee96844c5ccc487633df835c4dc9b1505f 100644 (file)
@@ -1,3 +1,12 @@
+2004-01-28  Tor Lillqvist  <tml@iki.fi>
+
+       * gdk/win32/gdkevents-win32.c (synthesize_leave_event,
+       synthesize_enter_event): Don' generate enter or leave events if
+       the pointer is grabbed with owner_events off, and the grab event
+       mask doesn't ask for them. (#129242)
+
+       (gdk_event_translate): Ditto for focus change events.
+
 2004-01-27  Federico Mena Quintero  <federico@ximian.com>
 
        Fix #132314.
index 2c6502802e30ef8381f181cea97a14d0accbedad..9906b1ee96844c5ccc487633df835c4dc9b1505f 100644 (file)
@@ -1,3 +1,12 @@
+2004-01-28  Tor Lillqvist  <tml@iki.fi>
+
+       * gdk/win32/gdkevents-win32.c (synthesize_leave_event,
+       synthesize_enter_event): Don' generate enter or leave events if
+       the pointer is grabbed with owner_events off, and the grab event
+       mask doesn't ask for them. (#129242)
+
+       (gdk_event_translate): Ditto for focus change events.
+
 2004-01-27  Federico Mena Quintero  <federico@ximian.com>
 
        Fix #132314.
index 4bc9f13fb914977ae2fdca5a4531dd1c3d8dc524..b0582110ade49495b18330223a5de61063be9aa9 100644 (file)
@@ -1264,6 +1264,9 @@ synthesize_leave_event (GdkWindow      *window,
 {
   POINT pt;
 
+  if (p_grab_window != NULL && !p_grab_owner_events && !(p_grab_mask & GDK_LEAVE_NOTIFY_MASK))
+    return;
+
   if (!(((GdkWindowObject *) window)->event_mask & GDK_LEAVE_NOTIFY_MASK))
     return;
 
@@ -1295,6 +1298,9 @@ synthesize_enter_event (GdkWindow      *window,
 {
   POINT pt;
 
+  if (p_grab_window != NULL && !p_grab_owner_events && !(p_grab_mask & GDK_ENTER_NOTIFY_MASK))
+    return;
+
   if (!(((GdkWindowObject *) window)->event_mask & GDK_ENTER_NOTIFY_MASK))
     return;
 
@@ -2793,6 +2799,9 @@ gdk_event_translate (GdkDisplay *display,
 
     case WM_SETFOCUS:
     case WM_KILLFOCUS:
+      if (p_grab_window != NULL && !p_grab_owner_events && !(p_grab_mask & GDK_FOCUS_CHANGE_MASK))
+       break;
+
       if (!(((GdkWindowObject *) window)->event_mask & GDK_FOCUS_CHANGE_MASK))
        break;